home *** CD-ROM | disk | FTP | other *** search
/ The Atari Compendium / The Atari Compendium (Toad Computers) (1994).iso / files / prgtools / mint / lib / mntlib44.zoo / mntlib / fopen.c < prev    next >
Encoding:
C/C++ Source or Header  |  1994-03-01  |  612 b   |  35 lines

  1. /* from Dale Schumacher's dLibs */
  2.  
  3. #include <stdio.h>
  4. #include <stdlib.h>
  5. #include <fcntl.h>
  6. #include <unistd.h>
  7. #include <errno.h>
  8. #include "lib.h"
  9.  
  10. __EXTERN void _getbuf __PROTO((FILE *));
  11.  
  12. FILE *
  13. fopen(filename, mode)
  14.     const char *filename, *mode;
  15. {
  16.   register int i;
  17.   register FILE *fp = NULL;
  18.  
  19.   for (i=0; (!fp && (i < _NFILE)); ++i)
  20.     if (!(_iob[i]._flag & (_IORW | _IOREAD | _IOWRT))) 
  21.       fp = &_iob[i]; /* empty slot */
  22.   if (fp != NULL)
  23.   {
  24.     if (_fopen_i(filename, mode, fp) == NULL)
  25.       return NULL;
  26.     _getbuf(fp);
  27.     return fp;
  28.   }
  29.   else
  30.   {
  31.     errno = EMFILE;
  32.     return NULL;
  33.   }
  34. }
  35.